#include <bits/stdc++.h>

using namespace std;
constexpr int MAXN=(1<<12)+10;
#define lowbit(x) (x&(-x))

int n, m;

struct BIT {
    int tr1[MAXN][MAXN],
        tr2[MAXN][MAXN],
        tr3[MAXN][MAXN],
        tr4[MAXN][MAXN];
    void add(int x, int y, int z) {
        for (int i=x; i<=n; i+=lowbit(i)) 
            for (int j=y; j<=m; j+=lowbit(j)) {
                tr1[i][j]+=z;
                tr2[i][j]+=x*z;
                tr3[i][j]+=y*z;
                tr4[i][j]+=x*y*z;
            }
    }

    int query(int x, int y) {
        int res=0;
        for (int i=x; i; i-=lowbit(i)) {
            for (int j=y; j; j-=lowbit(j))
                res+=
                (x+1)*(y+1)*tr1[i][j]-
                (x+1)*tr2[i][j]-
                (y+1)*tr3[i][j]+
                tr4[i][j];
        }
        return res;
    }
} bit;

void change(int x1, int y1, int x2, int y2, int v) {
    bit.add(x1,y1,v); bit.add(x2+1,y1,-v);
    bit.add(x1,y2+1,-v); bit.add(x2+1,y2+1,v);
}

int query(int x1, int y1, int x2, int y2) {
    return bit.query(x2,y2)-bit.query(x1-1,y2)-
        bit.query(x2,y1-1)+bit.query(x1-1,y1-1);
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr); cout.tie(nullptr);
    char op; int x1, y1, x2, y2, v;
    cin>>op>>n>>m;
    while (cin>>op>>x1>>y1>>x2>>y2) {

        if (op=='L') {
            cin>>v;
            change(x1,y1,x2,y2,v);
        }
        else cout<<query(x1,y1,x2,y2)<<'\n';
        // for (int i=1; i<=n; ++i) {
        //     for (int j=1; j<=m; ++j)
        //         cout<<bit.tr1[i][j]<<' ';
        //     cout<<'\n';
        // }   
    }
    return -0;  
}